﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace IntelligentGateway.SmartCommunity.Model
{
    public class MessageData
    {
        public string Command { get; set; }
        public string DeviceID { get; set; }
        public string Signature { get; set; }
        public int Seq { get; set; }
        public string TimeStamp { get; set; }

        public List<RegInfo> Data { get; set; }
    }


    public class HeartData
    {
        public string Command { get; set; }
        public string DeviceID { get; set; }
        public string Signature { get; set; }
        public int Seq { get; set; }
        public string TimeStamp { get; set; }

        public List<HeartInfo> Data { get; set; }
    }

    public class HDMessageData
    {
        public string Command { get; set; }
        public string DeviceID { get; set; }
        public string Signature { get; set; }
        public int Seq { get; set; }
        public string TimeStamp { get; set; }

        public List<HDRegInfo> Data { get; set; }
    }

    public class RegInfo
    {
        //public string deviceID { get; set; }
        //public string manufacturer { get; set; }
        //public string ip { get; set; }
        //public string mac { get; set; }
        //public string mask { get; set; }
        public string Version { get; set; }
        public string SN { get; set; }
        public int Type { get; set; }
    }


    public class HeartInfo
    {
        public string Version { get; set; }
        public int Type { get; set; }
    }

    public class HDRegInfo
    {
        public string deviceID { get; set; }
        public string manufacturer { get; set; }
        public string ip { get; set; }
        public string mac { get; set; }
        public string mask { get; set; }
        public string Version { get; set; }
    }

    public class CatalogueData
    {
        public string Command { get; set; }
        public List<CatalogueInfo> Data { get; set; }
    }

    public class CatalogueInfo
    {
        public string deviceID { get; set; }
        public string name { get; set; }
        public int subDeviceType { get; set; }
        public string version { get; set; }
    }

    public class CmdMessage
    {
        public string Cmd { get; set; }
        public int DataLen { get; set; }
        public int DevNo { get; set; }
        public int Address { get; set; }
    }

    public class VoucherInfo
    {
        public int ID { get; set; }
        public string cardID { get; set; }
        public string StartTime { get; set; }
        public string OverTime { get; set; }
        public string subDeviceID { get; set; }
        public int UserType { get; set; }
        public int CredenceType { get; set; }
        public string userName { get; set; }
        public string UUID { get; set; }
        public string elevatorAuthFloor { get; set; }
        public string AuthShowFloor { get; set; }
        public string typename { get; set; }
        public string role { get; set; }
        public int Recordhead { get; set; }//记录头
        public int Recordtail { get; set; }//记录尾
    }

    public class IncidentMessage
    {
        public string Command { get; set; }
        public List<Incident> Data { get; set; }
    }
    public class Incident
    {
        public string deviceID { get; set; }
        public int RecordType { get; set; }
        public int CredenceType { get; set; }
        public string credenceNo { get; set; }
        public int[] DestFloor { get; set; }
        public string opTime { get; set; }
        public string UUID { get; set; }
    }

    public class Message
    {
        public string Command { get; set; }
        public int Result { get; set; }
    }

    public class VisitControl
    {
        public string DeviceID { get; set; }
        public string SrcFloor { get; set; }
        public string DstFloor { get; set; }
        public string SrcSide { get; set; }
        public string DstSide { get; set; }
    }

    public class ElevatorInfoStatus
    {
        public string SubDeviceID { get; set; }
        public string State { get; set; }
        public string DoorDirection { get; set; }
        public string CurFloor { get; set; }
    }

    public class QueryStatusDevice
    {
        public string SubDeviceID { get; set; }
    
    }

    public class CurrentElevatorStatus
    {
        public int PhysicalFloor { get; set; }//物理楼层
        public string DisplayFloor { get; set; }//显示楼层
        public int Up { get; set; }//上行
        public int Down { get; set; }//下行
        public int Open { get; set; }//开门
        public int Close { get; set; }//关门
        public int Fault { get; set; }//故障
    }

    public class HDZHCurrentElevatorStatus
    {
        public int PhysicalFloor { get; set; }//物理楼层
        public string DisplayFloor { get; set; }//显示楼层
        public int Up { get; set; }//上行
        public int Down { get; set; }//下行
        public int Open { get; set; }//开门
        public int Close { get; set; }//关门
        public int Fault { get; set; }//故障
        public DateTime Update { get; set; }//状态更新时间
        public int Status { get; set; }//连接状态 0=未连接，1=连接
        public int Control { get; set; }//梯控状态
    }

    public class ElevatorStatusReturnData
    {
        public string Command { get; set; }
        public string DeviceID { get; set; }
        public string Signature { get; set; }
        public int Seq { get; set; }
        public string TimeStamp { get; set; }
        public int Result { get; set; }

        public List<ElevatorInfoStatus> Data { get; set; }
    }
    public class ReturnVisitControl
    {
        public string Command { get; set; }
        public string DeviceID { get; set; }
        public string Signature { get; set; }
        public int Seq { get; set; }
        public string TimeStamp { get; set; }
        public int Result { get; set; }
    }

    public class LogInfo
    {
        public string FileName { get; set; }
        public string FilePath { get; set; }
    }
}
